package com.sinping.qh.dto.admin.record;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sinping.qh.domain.common.UploadImage;
import com.sinping.qh.domain.common.UploadImageBase64Bean;
import com.sinping.qh.dto.admin.lab.LaboratoryDto;
import com.sinping.qh.dto.base.BaseDTO;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author jiahuaiqing
 * @create 2018/5/31
 */
@Data
public class HiddendangerRecordDto extends BaseDTO implements Serializable{
    private static final long serialVersionUID = 1071210086577972487L;

    /**
     * 检查记录id
     */
    @JsonProperty(value = "check_id")
    private String checkId;
    /**
     * 检查日期
     */
    @JsonProperty(value = "check_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    private Date checkDate;
    /**
     * 检查状态
     * 0-未检查；1-检查中；2-待审核；3-已审核
     */
    @JsonProperty(value = "check_status")
    private String checkStatus;
    /**
     * 检查院系
     */
    @JsonProperty(value = "check_unit")
    private String checkUnit;
    /**
     * 检查院系id
     */
    @JsonProperty(value = "check_unit_id")
    private String checkUnitId;
    /**
     * 检查楼宇名称
     */
    @JsonProperty(value = "check_building")
    private String checkBuilding;
    /**
     * 检查楼宇id
     */
    @JsonProperty(value = "check_building_id")
    private String checkBuildingId;
    /**
     * 检查实验室名称
     */
    @JsonProperty(value = "check_lab")
    private String checkLab;
    /**
     * 检查实验室id
     */
    @JsonProperty(value = "check_lab_id")
    private String checkLabId;
    /**
     * 实验室房间号
     */
    @JsonProperty(value = "check_room")
    private String checkRoom;

    /**
     * 检查项一级
     */
    @JsonProperty("check_item_one")
    private String checkItemOne;
    /**
     * 检查项一级id
     */
    @JsonProperty("check_item_one_id")
    private String checkItemOneId;

    /**
     * 检查项二级
     */
    @JsonProperty("check_item_two")
    private String checkItemTwo;
    /**
     * 检查项二级id
     */
    @JsonProperty("check_item_two_id")
    private String checkItemTwoId;

    /**
     * 描述
     */
    @JsonProperty("desc")
    private String desc;

    /**
     * 检查项三级
     */
    @JsonProperty("check_item_three")
    private String checkItemThree;
    /**
     * 检查项三级id
     */
    @JsonProperty("check_item_three_id")
    private String checkItemThreeId;
    /**
     * 隐患状态
     */
    @JsonProperty(value = "hidden_danger_status")
    private String hiddenDangerStatus;
    /**
     * 创建人姓名
     */
    @JsonProperty(value = "create_user_name")
    private String createUserName;
    /**
     * 创建人id
     */
    @JsonProperty(value = "create_user_id")
    private String createUserId;
    /**
     * 修改人id
     */
    @JsonProperty(value ="update_user_id")
    private String updateUserId;
    /**
     * 隐患记录中的图片
     */
    @JsonProperty(value = "upload_image_list")
    private List<UploadImage> uploadImageList;
    /**
     * 用于生成整改报告，隐患图片的显示
     */
    private List<UploadImageBase64Bean> uploadImageBase64;

    /**
     * 通知书整改方案 预计完成时间
     */
    @JsonProperty(value = "pre_time")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private Date preTime;
    /**
     * 通知书整改方案 具体措施
     */
    @JsonProperty(value = "case_method")
    private String caseMethod;
    /**
     * 通知书编号
     */
    @JsonProperty(value = "notice_no")
    private String noticeNo;


    @JsonProperty(value = "gmt_modified")
    private Date gmtModified;

    /**
     * 方案提交人
     */
    @JsonProperty(value = "case_user_name")
    private String caseUserName;

    /**
     * 方案提交人id
     */
    @JsonProperty(value = "case_user_name_id")
    private String caseUserNameId;

    /**
     * 方案提交时间
     */
    @JsonProperty(value = "case_gmt_create")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    private Date caseGmtCreate;

    /**
     * 所属所室
     */
    @JsonProperty(value = "offices")
    private String offices;

    /**
     * 以下字段用于生成整改报告用
     */
    //todo 取最新的一条整改信息和复查信息
    @JsonProperty(value = "zhenggai_info")
    private RectifyReviewDto zhengGaiInfo;

    //todo 取最新的一条整改信息和复查信息
    @JsonProperty(value = "fucha_info")
    private RectifyReviewDto fuChaInfo;

    //实验室信息(安全负责人和危险等级)
    @JsonProperty(value = "lab")
    private LaboratoryDto laboratory;

    //实验室的配置的危险源的检查项名称
    // AA;BB;CC
    @JsonProperty(value = "lab_inspect_item_namestr")
    private String labInspectItemNameStrs;
}
